import keyword

# 获取python的关键字
print(keyword.kwlist)

# 变量
a = 100
# 变量的类型可以不指定，会自动推断，而且变量的类型可以修改
print(a)
# 获取变量的类型
print(type(a))
# python中变量类型可以修改，动态数据类型的语言
a = "200"
print(type(a))

# 定义变量的时候手动指定类型
b: int = 100

# 在python编程中，一般使用大写命令代替常量，并不是不能变
PI = 3.1415926
print(PI)

# 单行注释

"""
'多行注释'
"""
'''
"多行注释"
'''

"""
print 函数在python2中可以带括号也可以不带括号，在python3中必须带括号
"""
print("python")
# 打印多个变量，指定分割方式，默认是空格分割
print(1, 2, 3, sep="|")

# 整型
a = 100
print(a, type(a))

# 浮点型
f = 3.14
print(f, type(f))
# 科学计算法
f = 3.14e9
print(f, type(f))

# 字符串
# 如果文本中有双引号外面用单引，文本中有单引号外面用双单引
s = 'java,spark",python'
print(s, type(s))

# 转义字符串
print("java \t  python")  # 制表符
print("java \n  python")  # 换行
print(r"java \n  python")  # 显示原始数据

# 布尔值
print(100 > 1)
print(100 < 1)
# 布尔运算
print(True and True)
print(True or True)
print(True & False)
print(True | True)
print(not True)  # 取反
print(not 100 > 1)

# 空值
n = None
print(n, type(n))

# 算术计算
i = 10
j = 3

print(i + j)
print(i - j)
print(i * j)
print(i / j)
print(i // j)  # 向下取整
print(i ** j)  # i的j次方
print(i % j)

print("=" * 100)

# 类型转换
s = "100"
print(s, type(s))

# 将字符串转换成int类型
i = int(s)
print(i, type(i))

s = "3.14"
f = float(s)
print(f, type(f))

s = str(f)
print(s, type(s))

# 类型转换异常
# s = "python"
# i = int(s)
# print(i, type(i))
# print("=" * 100)

print(bool("0"))
print(bool(0))  # false
print(bool(None))  # false

# 判断变量的类型
s = "java"
print(isinstance(s, str))
